# 保存随机数到redis
def save_random(phone,message):
    import redis
    conn = redis.Redis(host="localhost", port=6379,db=6)
    result = conn.set(phone, message, ex=60)  # ex代表seconds，px代表ms
    return result

# 从redis获取随机数
def get_random():
    import redis
    conn = redis.Redis(host="localhost", port=6379,db=6)
    val = conn.get('15513590311').decode()
    print(val)
    return val

# get_random(15513590311)


# 发送短信
def sms(phone):
    # 导包 导入客户端
    from twilio.rest import Client
    import string
    import random
    # 定义短信sid
    account_sid = 'ACa56f7e5b24f6101a9c4e04ffc59f7b93'
    # 定义秘钥
    auth_token = '6e392561779d6639b27a393e6d953823'

    # 定义客户端对象
    client = Client(account_sid, auth_token)
    seeds = string.digits

    random_str = random.choices(seeds, k=4)
    num = "".join(random_str)
    message = client.messages.create(
        to="+86"+phone,  # 接受短信的手机号，也就是注册界面验证过的那个自己的手机号，注意 写中国区号  +86
        from_="+117729198158",  # 发送短信的美国手机号  区号 +1
        body=num)
    save_random('15513590311',num)
    # 打印发送结果
    print(message)
    return message


# 发送邮箱
def get_email(email):
    import smtplib
    from email.mime.text import MIMEText
    from email.utils import formataddr

    my_sender = '1264798880@qq.com'  # 发件人邮箱账号
    my_pass = 'jroueztokjtqfdhg'  # 发件人smtp秘钥(当时申请smtp给的口令)
    my_user = email  # 收件人邮箱账号，我这边发送给自己

    def mail():
        ret = True
        try:
            msg = MIMEText('http://localhost:8080', 'plain', 'utf-8')
            msg['From'] = formataddr(["发件人昵称", my_sender])  # 括号里的对应发件人邮箱昵称、发件人邮箱账号
            msg['To'] = formataddr(["收件人昵称", my_user])  # 括号里的对应收件人邮箱昵称、收件人邮箱账号
            msg['Subject'] = "邮件主题-测试"  # 邮件的主题，也可以说是标题

            server = smtplib.SMTP_SSL("smtp.qq.com", 465)  # 发件人邮箱中的SMTP服务器，端口是465
            server.login(my_sender, my_pass)  # smtp秘钥
            server.sendmail(my_sender, [my_user, ], msg.as_string())  # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
            server.quit()  # 关闭连接
        except Exception:  # 如果 try 中的语句没有执行，则会执行下面的 ret=False
            ret = False
        return ret

    ret = mail()
    if ret:
        print("邮件发送成功")
    else:
        print("邮件发送失败")